This invention relates generally to applications executed on computer systems and, more specifically, relates to transparently adapting user interfaces (UIs) for those applications.
This section is intended to provide a background or context to the invention disclosed below. The description herein may include concepts that could be pursued, but are not necessarily ones that have been previously conceived, implemented or described. Therefore, unless otherwise explicitly indicated herein, what is described in this section is not prior art to the description in this application and is not admitted to be prior art by inclusion in this section.
Mobile applications and mobile application market places offer opportunity for developers to quickly release software in to a global market. After an application is deployed comes the challenge of managing the software through its application lifecycle. Managing and updating applications once deployed is a continual challenge for developers and product owners.
To alleviate this challenge, mobile application development has quickly adopted Web technologies as an attempt to directly address this post release management problem, for example, by hosting the client code on the server. This allows applications targeted for mobile devices to quickly update and deploy a new application layout as well as take advantage of “write once, run everywhere”.
Another class of mobile application called Hybrid takes this approach one step further. Hybrid applications typically architect the application using a native container alongside a Web view to provide the presentation. The hybrid application lets the application access a native Software Development Kit (SDK) as well for functionality such as a camera, a Global Positioning System (GPS), and file storage.
These two approaches to mobile development cover most use cases. However, they have the drawback of providing a low fidelity user experience.
Native applications, on the other hand, provide an appropriate user experience for the device. Typically, a mobile platform offers a native Application Programming Interface (API) for developing applications targeted to run on the platform. This API defines the look and feel of the platform as well as the operating services that applications are allowed to access. Other web based approaches just approximate this look and feel the best they can using a markup language, and typically the end result is not very good.
Thus, it would be beneficial to improve the look and feel of applications while easing management and updating of the applications.